import type { PlatformEnum } from '@/core/enums/platform'
import type { CreativePictureEnum, VersionTypeEnum, WordTypeEnum, HasMovedEnum } from '@/core/enums/type'
import type {
  PromotionServiceApproveStatusEnum,
  PromotionServiceStatusEnum,
  ServiceApproveStatusEnum,
  ServiceStatusEnum
} from '@/core/enums/status'
import type { AuthPack, Pack, Time } from '@/core/interfaces/base'
import type { CampaignIds } from '@/core/interfaces/campaign'
import type { Order } from '@/core/interfaces/order'
import type { Combo } from '@/core/interfaces/combo'
import type { Goods } from '@/services/promotion/updatePromotionCreative'
import { GroupApproveStatusEnum, WordApproveStatusEnum } from '@/core/enums/status'
import { isFirstEnum } from '@/store/usePromotionStore'


export interface Promotion extends Pack, AuthPack, CampaignIds {
  areas: string
  areaId: number
  days: number
  orderId: Order['id']
  hasCreativePic: CreativePictureEnum
  onLinePeriod: string
  orderNo: Order['orderNo']
  remainDays: number
  serviceApproveStatus: ServiceApproveStatusEnum
  pcWapCampaignName: string
  serviceCampaignName: string
  serviceStatus: ServiceStatusEnum
  serviceTime: string
  expireTime: string
  serviceUserId: number
  serviceUserName: string
  versionType: VersionTypeEnum
  hasMoved: HasMovedEnum
  pcImgNum: number
  ydImgNum: number
}

export interface Creative extends Partial<Time>, Pick<Combo, 'comboName'> {
  clientType: PlatformEnum
  destinationUrl: string
  id: number
  orderWordId: number
  orderId: Order['id']
  serviceApproveStatus: PromotionServiceApproveStatusEnum
  serviceStatus: PromotionServiceStatusEnum
  groupApproveStatus: GroupApproveStatusEnum
  wordApproveStatus: WordApproveStatusEnum
  campaignId: number
  content: string
  createUserId: number
  creativeId: number
  groupId: number
  pictures: string[]
  title: string
  updateUserId: number
  word: string
  type: WordTypeEnum
  pcGoods: Goods[]
  wapGoods: Goods[]
  serviceOfflineReasons: string
  wordOfflineReasons: string
  isFirst: isFirstEnum
}
